﻿Imports System.Data
Imports System.Configuration
Imports System.Collections.Generic
Imports System.Data.SqlClient
Imports TepcelDominio
Imports TepcelDAL.DBManager

Public Class ExistenciaDAL : Inherits DBManager
    Public Function GetAllFromExistencia() As List(Of Existencia)
        Dim comando As SqlCommand = MyBase.CreateSelectCommand("GetAllFromExistencia")
        Return SelectObjectFactory(comando)
    End Function

    Public Function SearchFromExistencia(ByVal texto As String) As List(Of Existencia)
        Dim comando As SqlCommand = MyBase.CreateSelectCommand("SearchFromExistencia")
        comando.Parameters.Add("@texto", SqlDbType.VarChar, 200).Value = texto
        Return SelectObjectFactory(comando)
    End Function

    Public Function GetByIDFromExitencia(ByVal codigoAlmacen As String, ByVal codigoProducto As String) As Existencia
        Dim comando As SqlCommand = MyBase.CreateSelectCommand("GetByIdFromExistencia")
        Return SelectObjectFactory(comando).Item(0)
    End Function

    Public Function GetBySerieFromDetalleexistencia(ByVal SerieProducto As String) As Existencia
        Dim comando As SqlCommand = MyBase.CreateSelectCommand("GetBySerieFromDetalleexistencia")
        comando.Parameters.Add("@serieProducto", SqlDbType.VarChar, 20).Value = SerieProducto
        Dim Existencia As New Existencia
        Dim DetalleExitencia As Existencia.DetalleExistencia
        Using reader As SqlDataReader = MyBase.ExecuteReader(comando)
            If reader.HasRows Then
                reader.Read()
                DetalleExitencia = New Existencia.DetalleExistencia
                DetalleExitencia.codigoDetalleExistencia = reader.GetInt32(0)
                DetalleExitencia.serieProducto = reader.GetString(1)
                DetalleExitencia.estadoProducto = reader.GetString(2)
                DetalleExitencia.estadoProductoAlmacen = reader.GetString(3)
                Existencia.Detalle.Add(DetalleExitencia)
                Existencia.Producto.codigoProducto = reader.GetString(4)
                Existencia.Almacen.codigoAlmacen = reader.GetString(5)
                Existencia.stockProducto = reader.GetInt32(6)
                DetalleExitencia = Nothing
            Else
                DetalleExitencia = New Existencia.DetalleExistencia
                DetalleExitencia.codigoDetalleExistencia = 0
                Existencia.Detalle.Add(DetalleExitencia)
            End If
        End Using
        Return Existencia
    End Function

    Private Function SelectObjectFactory(ByVal comando As SqlCommand) As List(Of Existencia)
        Dim Lista As New List(Of Existencia)
        Using reader As SqlDataReader = MyBase.ExecuteReader(comando)
            While reader.Read
                Dim Existencia As New Existencia()
                Existencia.Almacen.codigoAlmacen = reader.GetString(0)
                Existencia.Producto.codigoProducto = reader.GetString(1)
                Existencia.stockProducto = reader.GetInt32(2)
                Existencia.Producto.nombreProducto = reader.GetString(3)
                Existencia.Producto.descripcionProducto = reader.GetString(4)
                Lista.Add(Existencia)
                Existencia = Nothing
            End While
        End Using
        Return Lista
    End Function
End Class
